<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content=
    "application/xhtml+xml; charset=utf-8" />
    <title>
      6.40.&nbsp;Perl-5.24.1
    </title>
    <link rel="stylesheet" type="text/css" href="../stylesheets/lfs.css" />
    <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
    <link rel="stylesheet" href="../stylesheets/lfs-print.css" type=
    "text/css" media="print" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  </head>
  <body class="lfs" id="lfs-8.0">
    <div class="navheader">
      <h4>
        Linux From Scratch - Version 8.0
      </h4>
      <h3>
        第六章&nbsp;安装基本系统软件
      </h3>
      <ul>
        <li class="prev">
          <a accesskey="p" href="inetutils.html" title=
          "Inetutils-1.9.4">上一页</a>
          <p>
            Inetutils-1.9.4
          </p>
        </li>
        <li class="next">
          <a accesskey="n" href="xml-parser.html" title=
          "XML::Parser-2.44">下一页</a>
          <p>
            XML::Parser-2.44
          </p>
        </li>
        <li class="up">
          <a accesskey="u" href="chapter06.html" title=
          "第六章&nbsp;安装基本系统软件">返回</a>
        </li>
        <li class="home">
          <a accesskey="h" href="../index.html" title=
          "Linux From Scratch - Version 8.0 ">首页</a>
        </li>
      </ul>
    </div>
    <div class="wrap" lang="en" xml:lang="en">
      <h1 class="sect1">
        <a id="ch-system-perl" name="ch-system-perl"></a>6.40. Perl-5.24.1
      </h1>
      <div class="package" lang="en" xml:lang="en">
        <p>
          Perl 软件包，包含实用信息提取和报告语言。
        </p>
        <div class="segmentedlist">
          <div class="seglistitem">
            <div class="seg">
              <strong class="segtitle">预计构建时间：</strong>
              <span class="segbody">5.9 SBU</span>
            </div>
            <div class="seg">
              <strong class="segtitle">所需磁盘空间：</strong>
              <span class="segbody">245 MB</span>
            </div>
          </div>
        </div>
      </div>
      <div class="installation" lang="en" xml:lang="en">
        <h2 class="sect2">
          6.40.1. 安装 Perl
        </h2>
        <p>
          首先创建一个基本的 <code class="filename">/etc/hosts</code> 文件，以便在 Perl 的一个配置文件和可选测试套件中引用。
        </p>
        <pre class="userinput">
<kbd class=
"command">echo "127.0.0.1 localhost $(hostname)" &gt; /etc/hosts</kbd>
</pre>
        <p>
          这个版本的 Perl 会构建 Compress::Raw::Zlib 和 Compress::Raw::Bzip2 模块。Perl 默认会使用内部的一份源码用于构建。运行下面的命令，让 Perl 使用系统上已安装的库。
        </p>
        <pre class="userinput">
<kbd class="command">export BUILD_ZLIB=False
export BUILD_BZIP2=0</kbd>
</pre>
        <p>
          如要完全控制 Perl 的设置方式，你可以从下面的命令中移除 <span class="quote">&ldquo;<span class="quote">-des</span>&rdquo;</span> 选项，并手动指定软件包的构建方式。或者按照下面的命令照做，使用 Perl 自动检测的默认选项：
        </p>
        <pre class="userinput">
<kbd class="command">sh Configure -des -Dprefix=/usr                 \
                  -Dvendorprefix=/usr           \
                  -Dman1dir=/usr/share/man/man1 \
                  -Dman3dir=/usr/share/man/man3 \
                  -Dpager="/usr/bin/less -isR"  \
                  -Duseshrplib</kbd>
</pre>
        <div class="variablelist">
          <p class="title">
            <strong>配置选项的含义：</strong>
          </p>
          <dl class="variablelist">
            <dt>
              <span class="term"><em class=
              "parameter"><code>-Dvendorprefix=/usr</code></em></span>
            </dt>
            <dd>
              <p>
                此选项确保 <span class="command"><strong>perl</strong></span> 明白，应如何告知软件包应在什么位置安装它们的 perl 模块。
              </p>
            </dd>
            <dt>
              <span class="term"><em class=
              "parameter"><code>-Dpager="/usr/bin/less
              -isR"</code></em></span>
            </dt>
            <dd>
              <p>
                此选项确保使用 <strong class="userinput"><code>less</code></strong> 而不是 <strong class="userinput"><code>more</code></strong>。
              </p>
            </dd>
            <dt>
              <span class="term"><em class=
              "parameter"><code>-Dman1dir=/usr/share/man/man1
              -Dman3dir=/usr/share/man/man3</code></em></span>
            </dt>
            <dd>
              <p>
                因为 Groff 还未安装，<span class="command"><strong>Configure</strong></span> 认为我们不需要 Perl 的帮助文档。添加这些参数可强制安装。
              </p>
            </dd>
            <dt>
              <span class="term"><em class=
              "parameter"><code>-Duseshrplib</code></em></span>
            </dt>
            <dd>
              <p>
                构建一个共享的 libperl 库，有些 perl 模块需要它。
              </p>
            </dd>
          </dl>
        </div>
        <p>
          编译软件包：
        </p>
        <pre class="userinput">
<kbd class="command">make</kbd>
</pre>
        <p>
          如要测试结果（需要大约 2.5 SBU，比较耗费资源），运行：
        </p>
        <pre class="userinput">
<kbd class="command">make -k test</kbd>
</pre>
        <div class="admon note">
          <img alt="[Note]" src="../images/note.png" />
          <h3>
            注意
          </h3>
          <p>
            几个和 zlib 有关的测试会失败，这是因为使用了系统上的 zlib 而不是内部的那个版本。
          </p>
        </div>
        <p>
          安装软件包并进行清理：
        </p>
        <pre class="userinput">
<kbd class="command">make install
unset BUILD_ZLIB BUILD_BZIP2</kbd>
</pre>
      </div>
      <div class="content" lang="en" xml:lang="en">
        <h2 class="sect2">
          <a id="contents-perl" name="contents-perl"></a>6.40.2. Perl 包含内容
        </h2>
        <div class="segmentedlist">
          <div class="seglistitem">
            <div class="seg">
              <strong class="segtitle">安装的程序：</strong>
              <span class="segbody">c2ph, corelist, cpan, enc2xs, encguess,
              h2ph, h2xs, instmodsh, json_pp, libnetcfg, perl, perl5.24.1
              （指向 perl 的硬链接）, perlbug, perldoc, perlivp, perlthanks
              （指向 perlbug 的硬链接）, piconv, pl2pm, pod2html, pod2man,
              pod2text, pod2usage, podchecker, podselect, prove, pstruct
              （指向 c2ph 的硬链接）, ptar, ptardiff, ptargrep, shasum, splain,
              xsubpp, 和 zipdetails</span>
            </div>
            <div class="seg">
              <strong class="segtitle">安装的库：</strong>
              <span class="segbody">太多，无法在此一一列出</span>
            </div>
            <div class="seg">
              <strong class="segtitle">安装目录：</strong>
              <span class="segbody">/usr/lib/perl5</span>
            </div>
          </div>
        </div>
        <div class="variablelist">
          <h3>
            简介
          </h3>
          <table border="0" class="variablelist">
            <colgroup>
              <col align="left" valign="top" />
              <col />
            </colgroup>
            <tbody>
              <tr>
                <td>
                  <p>
                    <a id="c2ph" name="c2ph"></a><span class=
                    "term"><span class=
                    "command"><strong>c2ph</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    导出从 <span class="command"><strong>cc -g -S</strong></span> 生成的 C 结构体
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="corelist" name="corelist"></a><span class=
                    "term"><span class=
                    "command"><strong>corelist</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    一个 Module::CoreList 的命令行前端
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="cpan" name="cpan"></a><span class=
                    "term"><span class=
                    "command"><strong>cpan</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    通过命令行来和综合 Perl 归档网络（Comprehensive Perl Archive Network, CPAN）进行交互
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="enc2xs" name="enc2xs"></a><span class=
                    "term"><span class=
                    "command"><strong>enc2xs</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    从 Unicode 字符映射表或者 Tcl 编码文件为编码模块构建一个 Perl 扩展
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="encguess" name="encguess"></a><span class=
                    "term"><span class=
                    "command"><strong>encguess</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    猜测一个或多个文件的编码方式
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="h2ph" name="h2ph"></a><span class=
                    "term"><span class=
                    "command"><strong>h2ph</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    把 <code class="filename">.h</code> C 头文件转换为 <code class="filename">.ph</code> Perl 头文件
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="h2xs" name="h2xs"></a><span class=
                    "term"><span class=
                    "command"><strong>h2xs</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    把 <code class="filename">.h</code> C 头文件转换为 Perl 扩展
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="instmodsh" name="instmodsh"></a><span class=
                    "term"><span class=
                    "command"><strong>instmodsh</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    用来检查已安装 Perl 模块的 shell 脚本，甚至可以用它把一个已安装的模块打包成 tar 文档。
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="json_pp" name="json_pp"></a><span class=
                    "term"><span class=
                    "command"><strong>json_pp</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    在特定的输入输出格式之间转换数据
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="libnetcfg" name="libnetcfg"></a><span class=
                    "term"><span class=
                    "command"><strong>libnetcfg</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    可以用来配置 <code class="filename">libnet</code> Perl 模块
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="perl" name="perl"></a><span class=
                    "term"><span class=
                    "command"><strong>perl</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    把 C，<span class="command"><strong>sed</strong></span>，<span class="command"><strong>awk</strong></span> 和 <span class="command"><strong>sh</strong></span> 的一些优秀特性集于一个独立的强大语言
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="perl-version" name="perl-version"></a><span class=
                    "term"><span class=
                    "command"><strong>perl5.24.1</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    一个指向 <span class="command"><strong>perl</strong></span> 的硬链接
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="perlbug" name="perlbug"></a><span class=
                    "term"><span class=
                    "command"><strong>perlbug</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    用来生成关于 Perl 或其附带模块的错误报告，再通过邮件发送。
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="perldoc" name="perldoc"></a><span class=
                    "term"><span class=
                    "command"><strong>perldoc</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    以 pod 格式显示嵌入 Perl 安装目录或 Perl 脚本中的一段文档
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="perlivp" name="perlivp"></a><span class=
                    "term"><span class=
                    "command"><strong>perlivp</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    Perl 安装验证程序；它可用于检测 Perl 及其库是否正确安装
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="perlthanks" name="perlthanks"></a><span class=
                    "term"><span class=
                    "command"><strong>perlthanks</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    用来生成发送给 Perl 开发者的感谢邮件
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="piconv" name="piconv"></a><span class=
                    "term"><span class=
                    "command"><strong>piconv</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    Perl 版的 <span class="command"><strong>iconv</strong></span>，一个字符编码转换工具
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="pl2pm" name="pl2pm"></a><span class=
                    "term"><span class=
                    "command"><strong>pl2pm</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    一个把 Perl4 <code class="filename">.pl</code> 文件转换成 Perl5 <code class="filename">.pm</code> 模块的简单工具
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="pod2html" name="pod2html"></a><span class=
                    "term"><span class=
                    "command"><strong>pod2html</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    把文件从 pod 格式转换成 HTML 格式
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="pod2man" name="pod2man"></a><span class=
                    "term"><span class=
                    "command"><strong>pod2man</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    把 pod 数据转换成格式化的 *roff 输入
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="pod2text" name="pod2text"></a><span class=
                    "term"><span class=
                    "command"><strong>pod2text</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    把 pod 数据转化成格式化的 ASCII 文本
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="pod2usage" name="pod2usage"></a><span class=
                    "term"><span class=
                    "command"><strong>pod2usage</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    从文件中内嵌的 pod 文档打印出使用信息
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="podchecker" name="podchecker"></a><span class=
                    "term"><span class=
                    "command"><strong>podchecker</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    检查 pod 格式文档文件的语法
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="podselect" name="podselect"></a><span class=
                    "term"><span class=
                    "command"><strong>podselect</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    显示 pod 文档中被选中的部分
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="prove" name="prove"></a><span class=
                    "term"><span class=
                    "command"><strong>prove</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    对 Test::Harness 模块进行测试的命令行工具
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="pstruct" name="pstruct"></a><span class=
                    "term"><span class=
                    "command"><strong>pstruct</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    导出从 <span class="command"><strong>cc -g -S</strong></span> 的调试信息生成的 C 结构体
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="ptar" name="ptar"></a><span class=
                    "term"><span class=
                    "command"><strong>ptar</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    一个用 Perl 写的，类似于 <span class="command"><strong>tar</strong></span> 的程序
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="ptardiff" name="ptardiff"></a><span class=
                    "term"><span class=
                    "command"><strong>ptardiff</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    一个用于比较提取过和未提取过归档的 Perl 程序
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="ptargrep" name="ptargrep"></a><span class=
                    "term"><span class=
                    "command"><strong>ptargrep</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    一个用于对 tar 文档中文件的内容进行模式匹配的 Perl 程序
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="shasum" name="shasum"></a><span class=
                    "term"><span class=
                    "command"><strong>shasum</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    打印或检查 SHA 校验和
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="splain" name="splain"></a><span class=
                    "term"><span class=
                    "command"><strong>splain</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    用于强制输出 Perl 详细的警告诊断信息
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="xsubpp" name="xsubpp"></a><span class=
                    "term"><span class=
                    "command"><strong>xsubpp</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    把 Perl XS 代码转换成 C 代码
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="zipdetails" name="zipdetails"></a><span class=
                    "term"><span class=
                    "command"><strong>zipdetails</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    显示一个 Zip 文件内部结构的详细信息
                  </p>
                </td>
              </tr>
            </tbody>
          </table>
        </div>
      </div>
    </div>
    <div class="navfooter">
      <ul>
        <li class="prev">
          <a accesskey="p" href="inetutils.html" title=
          "Inetutils-1.9.4">上一页</a>
          <p>
            Inetutils-1.9.4
          </p>
        </li>
        <li class="next">
          <a accesskey="n" href="xml-parser.html" title=
          "XML::Parser-2.44">下一页</a>
          <p>
            XML::Parser-2.44
          </p>
        </li>
        <li class="up">
          <a accesskey="u" href="chapter06.html" title=
          "第六章&nbsp;安装基本系统软件">返回</a>
        </li>
        <li class="home">
          <a accesskey="h" href="../index.html" title=
          "Linux From Scratch - Version 8.0 ">首页</a>
        </li>
      </ul>
    </div>
  </body>
</html>
